package com.sheng.leetcode.year2023.month09.day05;

import org.junit.Test;

/**
 * @author by ls
 * @date 2023/9/5
 * <p>
 * 2605. 从两个数字数组里生成最小数字<p>
 * <p>
 * 给你两个只包含 1 到 9 之间数字的数组 nums1 和 nums2 ，每个数组中的元素 互不相同 ，<p>
 * 请你返回 最小 的数字，两个数组都 至少 包含这个数字的某个数位。<p>
 * <p>
 * 示例 1：<p>
 * 输入：nums1 = [4,1,3], nums2 = [5,7]<p>
 * 输出：15<p>
 * 解释：数字 15 的数位 1 在 nums1 中出现，数位 5 在 nums2 中出现。15 是我们能得到的最小数字。<p>
 * <p>
 * 示例 2：<p>
 * 输入：nums1 = [3,5,2,6], nums2 = [3,1,7]<p>
 * 输出：3<p>
 * 解释：数字 3 的数位 3 在两个数组中都出现了。<p>
 * <p>
 * 提示：<p>
 * 1 <= nums1.length, nums2.length <= 9<p>
 * 1 <= nums1[i], nums2[i] <= 9<p>
 * 每个数组中，元素 互不相同 。<p>
 */
public class LeetCode2605 {

    @Test
    public void test01() {
//        int[] nums1 = {4, 1, 3}, nums2 = {5, 7};
//        int[] nums1 = {3, 5, 2, 6}, nums2 = {3, 1, 7};
        int[] nums1 = {1, 7, 3}, nums2 = {8, 4, 5};
        System.out.println(new Solution().minNumber(nums1, nums2));
    }
}

class Solution {
    public int minNumber(int[] nums1, int[] nums2) {
        int min = Integer.MAX_VALUE;
        for (int k : nums1) {
            for (int i : nums2) {
                if (k == i) {
                    min = Math.min(min, k);
                } else if (k > i) {
                    min = Math.min(min, i * 10 + k);
                } else {
                    min = Math.min(min, k * 10 + i);
                }
            }
        }
        return min;
    }
}
